#include <string.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>

#include "config.h"
#include "file.h"

Config setting_config;

int ResetConfig()
{
    memset(&setting_config, 0, sizeof(Config));
    setting_config.version = CONFIG_VERSION;

    return 0;
}

int LoadConfig()
{
    Config config;
    memset(&config, 0, sizeof(Config));

    int ret = ReadFile(CONFIG_PATH, &config, sizeof(Config));
    if (ret < 0 || ret != sizeof(Config) || config.version != CONFIG_VERSION)
    {
        ResetConfig();
        return -1;
    }

    memcpy(&setting_config, &config, sizeof(Config));
    return 0;
}

int SaveConfig()
{
    char *parent_dir = GetParentDir(CONFIG_PATH);
    if (!parent_dir)
        return -1;

    CreateFolder(parent_dir);
    free(parent_dir);

    return WriteFile(CONFIG_PATH, &setting_config, sizeof(Config));
}
